}
}
- return GDK_WAYLAND_SEAT (seat)->pointer_info.press_serial;
+ return GDK_WAYLAND_SEAT (seat)->pointer_info.press_serial;
}
uint32_t
-_gdk_wayland_seat_get_last_implicit_grab_serial (GdkSeat *seat,
+_gdk_wayland_seat_get_last_implicit_grab_serial (GdkWaylandSeat *seat,
GdkEventSequence **sequence)
{
- GdkWaylandSeat *wayland_seat;
GdkWaylandTouchData *touch;
GHashTableIter iter;
GList *l;
uint32_t serial;
- wayland_seat = GDK_WAYLAND_SEAT (seat);
- g_hash_table_iter_init (&iter, wayland_seat->touches);
+ g_hash_table_iter_init (&iter, seat->touches);
if (sequence)
*sequence = NULL;
- serial = wayland_seat->keyboard_key_serial;
+ serial = seat->keyboard_key_serial;
- if (wayland_seat->pointer_info.press_serial > serial)
- serial = wayland_seat->pointer_info.press_serial;
+ if (seat->pointer_info.press_serial > serial)
+ serial = seat->pointer_info.press_serial;
- for (l = wayland_seat->tablets; l; l = l->next)
+ for (l = seat->tablets; l; l = l->next)
{
GdkWaylandTabletData *tablet = l->data;
#include <gdk/gdkcursor.h>
#include <gdk/wayland/gdkwayland.h>
#include <gdk/wayland/gdkdisplay-wayland.h>
+#include <gdk/wayland/gdkseat-wayland.h>
#include <xkbcommon/xkbcommon.h>
GdkKeymap *_gdk_wayland_device_get_keymap (GdkDevice *device);
uint32_t _gdk_wayland_device_get_implicit_grab_serial(GdkWaylandDevice *device,
const GdkEvent *event);
-uint32_t _gdk_wayland_seat_get_last_implicit_grab_serial (GdkSeat *seat,
+uint32_t _gdk_wayland_seat_get_last_implicit_grab_serial (GdkWaylandSeat *seat,
GdkEventSequence **seqence);
struct wl_data_device * gdk_wayland_device_get_data_device (GdkDevice *gdk_device);
void gdk_wayland_device_set_selection (GdkDevice *gdk_device,
#include "gdkdeviceprivate.h"
#include "gdkprivate-wayland.h"
#include "gdkmonitor-wayland.h"
+#include "gdkseat-wayland.h"
#include <wayland/xdg-shell-unstable-v6-client-protocol.h>
#include <stdlib.h>
GdkSurface *w = l->data;
GdkSurfaceImplWayland *impl;
- if (!GDK_IS_SURFACE_IMPL_WAYLAND(w->impl))
+ if (!GDK_IS_SURFACE_IMPL_WAYLAND (w->impl))
continue;
impl = GDK_SURFACE_IMPL_WAYLAND (w->impl);
static void
gdk_wayland_surface_create_xdg_popup (GdkSurface *surface,
GdkSurface *parent,
- struct wl_seat *seat)
+ GdkWaylandSeat *grab_input_seat)
{
GdkWaylandDisplay *display = GDK_WAYLAND_DISPLAY (gdk_surface_get_display (surface));
GdkSurfaceImplWayland *impl = GDK_SURFACE_IMPL_WAYLAND (surface->impl);
GdkSurfaceImplWayland *parent_impl = GDK_SURFACE_IMPL_WAYLAND (parent->impl);
gpointer positioner;
- GdkSeat *gdk_seat;
- guint32 serial;
if (!impl->display_server.wl_surface)
return;
g_assert_not_reached ();
}
- if (seat)
+ if (grab_input_seat)
{
- gdk_seat = gdk_display_get_default_seat (GDK_DISPLAY (display));
- serial = _gdk_wayland_seat_get_last_implicit_grab_serial (gdk_seat, NULL);
+ struct wl_seat *seat;
+ guint32 serial;
+
+ seat = gdk_wayland_seat_get_wl_seat (GDK_SEAT (grab_input_seat));
+ serial = _gdk_wayland_seat_get_last_implicit_grab_serial (grab_input_seat, NULL);
switch (display->shell_variant)
{
display->current_popups = g_list_append (display->current_popups, surface);
}
-static struct wl_seat *
+static GdkWaylandSeat *
find_grab_input_seat (GdkSurface *surface,
GdkSurface *transient_for)
{
* grab before showing the popup surface.
*/
if (impl->grab_input_seat)
- return gdk_wayland_seat_get_wl_seat (impl->grab_input_seat);
+ return GDK_WAYLAND_SEAT (impl->grab_input_seat);
/* HACK: GtkMenu grabs a special surface known as the "grab transfer surface"
* and then transfers the grab over to the correct surface later. Look for
{
tmp_impl = GDK_SURFACE_IMPL_WAYLAND (attached_grab_surface->impl);
if (tmp_impl->grab_input_seat)
- return gdk_wayland_seat_get_wl_seat (tmp_impl->grab_input_seat);
+ return GDK_WAYLAND_SEAT (tmp_impl->grab_input_seat);
}
while (transient_for)
tmp_impl = GDK_SURFACE_IMPL_WAYLAND (transient_for->impl);
if (tmp_impl->grab_input_seat)
- return gdk_wayland_seat_get_wl_seat (tmp_impl->grab_input_seat);
+ return GDK_WAYLAND_SEAT (tmp_impl->grab_input_seat);
transient_for = tmp_impl->transient_for;
}
if (should_map_as_popup (surface))
{
gboolean create_fallback = FALSE;
- struct wl_seat *grab_input_seat;
+ GdkWaylandSeat *grab_input_seat;
/* Popup menus can appear without a transient parent, which means they
* cannot be positioned properly on Wayland. This attempts to guess the
if (!create_fallback)
{
gdk_wayland_surface_create_xdg_popup (surface,
- transient_for,
- grab_input_seat);
+ transient_for,
+ grab_input_seat);
}
else
{
if (!is_realized_toplevel (surface))
return;
- serial = _gdk_wayland_seat_get_last_implicit_grab_serial (gdk_device_get_seat (device),
+ serial = _gdk_wayland_seat_get_last_implicit_grab_serial (GDK_WAYLAND_SEAT (gdk_device_get_seat (device)),
&sequence);
switch (display_wayland->shell_variant)
if (!is_realized_toplevel (surface))
return;
- serial = _gdk_wayland_seat_get_last_implicit_grab_serial (gdk_device_get_seat (device),
+ serial = _gdk_wayland_seat_get_last_implicit_grab_serial (GDK_WAYLAND_SEAT (gdk_device_get_seat (device)),
&sequence);
switch (display_wayland->shell_variant)
{